<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);

require_once '../model/Acesso.php';
require_once("../model/Banco_Dados.php");

class Conexao {
    private $conn = NULL;

    public function execSQL($SQL){
		
        $banco  = new Banco_Dados();
/*
        $params = array('host'     => '10.1.1.21', // 10.1.1.21\MSSQLSERVER,1433
            'login'    => 'rm',
            'senha'    => 'rm',
            'database' => 'CORPORE');

        $ObjSrv = new ConexaoMSSQL($params);
        $ObjSrv->connect();
*/
        $host		=$banco->getHost(); //endereco
        $database  	= $banco->getBanco(); //database
        $login	=	$banco->getUser(); //login
        $senha	=	$banco->getPaswd(); //senha


        $this->con = mysql_connect($host, $login, $senha)
                 or die("ERRO NA CONEXAO");

        $db = mysql_select_db($database, $this->con) or die("ERRO NA SELEÇÃO DO DATABASE");

        if ($this->con) {
            $res = mysql_query($SQL);
            return $res;

        } else {
            return false;

        }

        mysql_close($this->con);
    }
	
	public function gerar_acesso(Acesso $acesso){
	
		$id_func=$acesso->getUsuario();
		$historico=$acesso->getHistorico();
		$data=$acesso->getData();
		$hora=$acesso->getHora();
		$ip_user=$acesso->getTerminal();
		$codigo_sql=$acesso->getSql();
		
        $sql_acesso=" insert into acesso_sistema (codigo_usuario,historico,data_hora,terminal,sql_gerado) values
	     ('$id_func', '$historico', '".$data." ".$hora."','$ip_user', '$codigo_sql') ";
		// echo $sql_acesso;
		 
		$conect= new Conexao;
		$res=$conect->execSQL($sql_acesso);
		if($res){
			return true;
		}else{
			return false;
		}		 
	
	}
	
	
	public function retorno_linhas($resultado){
		$num_linhas = mysql_num_rows($resultado);
		return $num_linhas;
	}

    public function query($SQL) {

        $stmt = mysql_query($SQL,$this->con);

        if($stmt == false) {
            die ("Erro na consulta preparação / execução.\n");
        }

        return $stmt;
    }


    public function fetch($SQL){
        $stmt = $this->query($SQL);

        while($row = mysql_fetch_array($stmt)) {
            print "<pre>";
            print_r($row);
            print "</pre>";

        }

    }

}


class ConexaoServer {
    private $conn = NULL;
    private $stmt = NULL;

    function __construct($param_banco = null) {

        //$this->host	    = 'ti5\MSSQLSERVER,1433';     //endereco
        $this->host	    = $param_banco['host'];     //endereco
        $this->database = $param_banco['database'];//database
        $this->login	= $param_banco['login'];   //login
        $this->senha    = $param_banco['senha'];   //senha

        $this->connect();

    }

    function __destruct() {
        sqlsrv_free_stmt( $this->stmt);
        sqlsrv_close( $this->conn);

    }

    public function connect() {


        $connectionInfo =  array( "UID"=>$this->login,
                                        "PWD"=>$this->senha,
                                        "Database"=>$this->database);

        $this->conn = sqlsrv_connect( $this->host, $connectionInfo);
        if( $this->conn )
        {
            //echo "Conexão estabelecida.\n";
            //$this->query();
            return $this->conn;
        }
        else
        {
            echo "Não foi possível estabelecer conexão.\n";
            if( $this->conn === false ) {
                if( ($errors = sqlsrv_errors() ) != null) {
                    foreach( $errors as $error ) {
                        echo "SQLSTATE: ".$error[ 'SQLSTATE']."<br />";
                        echo "code: ".$error[ 'code']."<br />";
                        echo "message: ".$error[ 'message']."<br />";
                    }
                }
            }
        }

    }

    public function query($SQL) {

        $this->stmt = sqlsrv_query($this->conn,$SQL);

        if( $this->stmt === false)
        {
            echo "Erro na consulta preparação / execução.\n";
            die( print_r( sqlsrv_errors(), true));
        }

    }

}


class ConexaoMSSQL {

    private $conn = NULL;
    private $stmt = NULL;

    public function __construct($param_banco = null){

        $this->host	    = $param_banco['host'];     //endereco
        $this->database = $param_banco['database'];//database
        $this->login	= $param_banco['login'];   //login
        $this->senha    = $param_banco['senha'];   //senha

        $this->connect();
    }

    function __destruct() {
        mssql_close();
    }

    public function connect() {

        $this->conn = mssql_connect( $this->host, $this->login,$this->senha);
        mssql_select_db($this->database,$this->conn);
        if( $this->conn )
        {
            //$SQL = "SELECT TOP(5) * FROM $this->database.dbo.FLAN";
            //$this->query($SQL);
            return $this->conn;
        }
        else
        {
            echo "Não foi possível estabelecer conexão.\n";


        }

    }

    public function query($SQL) {

        $this->stmt = mssql_query($SQL,$this->conn);

        if( $this->stmt === false)
        {
            echo "Erro na consulta preparação / execução.\n";
            exit();
        }
        /*
        else {
            $row = mssql_fetch_array($this->stmt);

            print "<pre>";
            print_r($row);
            print "</pre>";
        }
        */



    }

}


?>
